css: Clipping changes don't need a queue_allocate() anymore
authorBenjamin Otte <otte@redhat.com>
Mon, 9 Apr 2018 18:19:17 +0000 (20:19 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 9 Apr 2018 18:20:55 +0000 (20:20 +0200)
Now that queue_draw() isn't restricted to clip anymore, we don't need to
care about clip in the CSS engine either.

We do keep GTK_CSS_AFFECTS_CLIP around though because GtkWindow does
care for the window's size.

gtk/gtkcssstylepropertyimpl.c
gtk/gtkcsstypesprivate.h
gtk/gtkpopover.c
gtk/gtktextview.c
gtk/gtktreeview.c
gtk/gtkwidget.c

index 2574a6e2c383eaf9c5343d48abd439f1de631e7b..0d1be84071b302c582ab495b57d2fd9005aa0fe6 100644 (file)
@@ -1173,7 +1173,7 @@ _gtk_css_style_property_init_properties (void)
                                           GTK_CSS_PROPERTY_TEXT_SHADOW,
                                           G_TYPE_NONE,
                                           GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED,
-                                          GTK_CSS_AFFECTS_TEXT_CLIP,
+                                          GTK_CSS_AFFECTS_TEXT_CONTENT,
                                           shadow_value_parse,
                                           NULL,
                                           _gtk_css_shadows_value_new_none ());
index 2dae7214f0e2346fe4f2581687824105ba075811..eb6d6fab0770552db8faf7e0f5cfe73ea18afd92 100644 (file)
@@ -103,7 +103,8 @@ typedef guint64 GtkCssChange;
  * @GTK_CSS_AFFECTS_ICON_SIZE: Icon size is affected.
  * @GTK_CSS_AFFECTS_TEXT_ATTRS: Text attributes are affected.
  * @GTK_CSS_AFFECTS_TEXT_SIZE: Text size is affected.
- * @GTK_CSS_AFFECTS_TEXT_CLIP: Text clipping is affected.
+ * @GTK_CSS_AFFECTS_TEXT_CONTENT: Text rendering is affected, but size or
+ *   attributes are not.
  * @GTK_CSS_AFFECTS_ICON: Fullcolor icons and their rendering is affected.
  * @GTK_CSS_AFFECTS_SYMBOLIC_ICON: Symbolic icons and their rendering is affected.
  * @GTK_CSS_AFFECTS_OUTLINE: The outline styling is affected. Outlines
@@ -130,7 +131,7 @@ typedef enum {
   GTK_CSS_AFFECTS_ICON_SIZE     = (1 << 3),
   GTK_CSS_AFFECTS_TEXT_ATTRS    = (1 << 4),
   GTK_CSS_AFFECTS_TEXT_SIZE     = (1 << 5),
-  GTK_CSS_AFFECTS_TEXT_CLIP     = (1 << 6),
+  GTK_CSS_AFFECTS_TEXT_CONTENT  = (1 << 6),
   GTK_CSS_AFFECTS_ICON          = (1 << 7),
   GTK_CSS_AFFECTS_SYMBOLIC_ICON = (1 << 8),
   GTK_CSS_AFFECTS_OUTLINE       = (1 << 9),
@@ -148,7 +149,7 @@ typedef enum {
                                 GTK_CSS_AFFECTS_POSTEFFECT)
 
 #define GTK_CSS_AFFECTS_TEXT (GTK_CSS_AFFECTS_TEXT_SIZE | \
-                              GTK_CSS_AFFECTS_TEXT_CLIP)
+                              GTK_CSS_AFFECTS_TEXT_CONTENT)
 
 
 enum { /*< skip >*/
index be04da8f871d339eaaffeb4c0fba954a5915cbe6..a2221b179edc21fa23c10c5cb7ff1aa6612094f0 100644 (file)
@@ -260,7 +260,7 @@ node_style_changed_cb (GtkCssNode        *node,
                        GtkCssStyleChange *change,
                        GtkWidget         *widget)
 {
-  if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP))
+  if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE))
     gtk_widget_queue_resize (widget);
   else
     gtk_widget_queue_draw (widget);
index 101214dce05a019a83a0f0d1f407061d803ab3ed..b0d53652bec50f4c200094cb0887f6f3d526bad8 100644 (file)
@@ -8897,7 +8897,7 @@ node_style_changed_cb (GtkCssNode        *node,
                        GtkCssStyleChange *change,
                        GtkWidget         *widget)
 {
-  if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP))
+  if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE))
     gtk_widget_queue_resize (widget);
   else
     gtk_widget_queue_draw (widget);
index 23f7d32fcea4d5d6a5ba96718d8edf875131ead2..4de024e1f0081dd19b15543c3b594838b37ddfc9 100644 (file)
@@ -8268,7 +8268,7 @@ gtk_tree_view_style_updated (GtkWidget *widget)
   style_context = gtk_widget_get_style_context (widget);
   change = gtk_style_context_get_change (style_context);
 
-  if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP))
+  if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE))
     {
       for (list = tree_view->priv->columns; list; list = list->next)
        {
index 99216c6904ce7662f4970d7eeccb16b005563a26..d582c5ddcac93e09f840122bfcadd8f79ae41308 100644 (file)
@@ -5771,12 +5771,8 @@ gtk_widget_real_style_updated (GtkWidget *widget)
             {
               gtk_widget_queue_resize (widget);
             }
-          else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_CLIP) ||
-                   (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_CLIP)))
-            {
-              gtk_widget_queue_allocate (widget);
-            }
-          else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW))
+          else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW) ||
+                   (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_CONTENT)))
             {
               gtk_widget_queue_draw (widget);
             }